<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 设计模式：Design Pattern，很多优秀的程序员在开发过程中，发现的一些解决问题的思路产生代码（具有通用性）

        // 工厂模式：Factory，流水线负责生成内容，看上去生成一样的东西，实际上生成的东西不一样（新的，长的一样）

        // 代码实现：建一个工厂（函数），接收不同的数据（形参），产生不同的结果（返回值）

        // 做一个生产学生的工厂
        function student(name, age, stuNo) {
            // 1. 产生一个学生
            let stu = new Object();     // 空对象

            // 2. 给学生添加区别：属性增加不同
            // stu是对象
            // stu.name  对象.属性名
            // stu.name = name  对象.属性名 = 值（name变量：保存外部拿到的数据）
            stu.name = name;
            stu.age = age;
            stu.stuNo = stuNo;

            // 3. 返回成品
            return stu;
        }

        // 使用工厂
        let stu1 = student('张三', 19, '000001');
        console.log(stu1);
        let stu2 = student('李四', 20, '000002');
        console.log(stu2);

        let stu3 = student('李四', 20, '000002');
        console.log(stu3);

        console.log(stu2 == stu3);      // false：不同
    </script>
</body>

</html>